﻿Imports Entidad
Imports Negocio
Imports Utilitario
Public Class frmConfirmarSalida

    Dim servicio1 As New TurnoNegocio
    Dim servicio2 As New ProgramacionNegocio
    Dim servicio3 As New DocumentoClienteNegocio

    Dim empezar As Boolean = False

    Sub mensaje(ByVal men As String)
        MsgBox(men, MsgBoxStyle.Information, "Mensajes al Usuario")
    End Sub

    Sub listarVehiculos()
        Dim ds As DataSet = servicio2.listarVehiculosProgramados(lblFecha.Text, cboTurno.SelectedValue.ToString)

        dgvVehiculos.DataSource = ds.Tables(0)

        If ds.Tables(0).Rows.Count <> 0 Then
            dgvVehiculos.Rows(0).Selected = False
        End If
    End Sub

    Sub cargarTurno()
        With cboTurno
            .DataSource = servicio1.obtenerTurnos(Date.Now.ToString("HH:mm:ss")).Tables(0)
            .ValueMember = "TUR_Codigo"
            .DisplayMember = "TUR_Descripcion"
        End With
    End Sub

    Sub mostraFecha()
        lblFecha.Text = Date.Now.ToString("dd/MM/yyyy")
    End Sub

    Sub iniciar()
        mostraFecha()
        cargarTurno()
        listarVehiculos()
        empezar = True
    End Sub

    Private Sub frmConfirmarSalida_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        iniciar()
    End Sub

    Private Sub cboTurno_SelectedValueChanged(sender As Object, e As System.EventArgs) Handles cboTurno.SelectedValueChanged
        If empezar = True Then
            listarVehiculos()
        End If
    End Sub

    Function verificarVehiculosConfirmados() As Boolean
        Dim valor As Boolean = False
        Dim contador As Integer = 0
        For Each fila As DataGridViewRow In dgvVehiculos.Rows
            If fila.Cells("Column1").Value = True Then
                contador = contador + 1
            End If
        Next
        If contador <> 0 Then
            valor = True
        End If

        Return valor
    End Function

    Private Sub btnConfirmacion_Click(sender As System.Object, e As System.EventArgs) Handles btnConfirmacion.Click
        If verificarVehiculosConfirmados() = False Then
            mensaje("Ningún vehículo ha sido confirmado.")
        Else
            If MsgBox("¿Está seguro de confirmar la salida?", MsgBoxStyle.Question + MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2, "Mensajes al Usuario") = MsgBoxResult.Yes Then
                Dim contador As Integer = 0
                For Each fila As DataGridViewRow In dgvVehiculos.Rows
                    If fila.Cells("Column1").Value = True Then
                        contador = contador + 1
                        servicio2.actualizarFechaSalida(lblFecha.Text, cboTurno.SelectedValue.ToString, fila.Cells("Column7").Value)
                        Dim ds As DataSet = servicio2.obtenerPedidosProgramados(fila.Cells("Column7").Value, lblFecha.Text, cboTurno.SelectedValue.ToString)
                        For i = 0 To ds.Tables(0).Rows.Count - 1
                            servicio3.actualizarEstadoPedido(ds.Tables(0).Rows(i)("DCI_Codigo").ToString.Trim, EST_Reparto, "P")
                        Next
                    End If
                Next
                If contador = 1 Then
                    mensaje("Se confirmó " & contador & " vehículo correctamente.")
                Else
                    mensaje("Se confirmaron " & contador & " vehículos correctamente.")
                End If
                listarVehiculos()
            End If
        End If
    End Sub

End Class